package com.ruoyi.order.domain;

import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.store.domain.SysStore;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;

/**
 * 背调订单对象 sys_order
 *
 * @author ruoyi
 * @date 2024-06-24
 */
public class SysOrderOne extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 订单号 */
    @Excel(name = "订单号")
    private String number;

    /** 候选人昵称 */
    @Excel(name = "候选人昵称")
    private String cdName;

    /** 身份证号 */
    @Excel(name = "身份证号")
    private String idNumber;

    /** 手机号 */
    @Excel(name = "身份证号")
    private String phone;

    /** 证书编号 */
    private String certificate;

    /** 套餐单价 */
    @Excel(name = "套餐单价")
    private BigDecimal amount;

    /** 授权种类 */

    private Long authorizationType;

    /** 支付状态 */
    @Excel(name = "支付状态",readConverterExp = "0=未支付,1=已支付")
    private Long payStatus;

    /** 订单状态 */
    @Excel(name = "订单状态",readConverterExp = "0=发起被调,1=待授权2背调中,3=已出报告,4=异常,5=挂起")
    private Long orderStatus;

    /** 订单结果 */
    @Excel(name = "订单结果",readConverterExp="1=待出具,2=无风险,3=低风险,4=中风险,5=高风险")
    private Long orderOutcome;

    /** 商户id */
    private Long storeId;

    /** 商户名称 */
    @Excel(name = "商户名称")
    private String storeName;

    /** 代理商id */
    private Long agentId;

    /** 报告路径 */
    @Excel(name = "报告路径")
    private String reportUrl;

    /** 套餐id */

    private Long setmealId;

    /** 批量id */
    private Long parentId;

    /** 用户id */
    private Long userId;

    /** 部门id */
    private Long deptId;

    @Excel(name = "代理商名称")
    private String agentName;

//    @Excel(name = "套餐类型",readConverterExp = "0=线下,1=线上")
    private String packageType;

    //学位证书编号
    private String degreeCerNo;

    public String getDegreeCerNo() {
        return degreeCerNo;
    }

    public void setDegreeCerNo(String degreeCerNo) {
        this.degreeCerNo = degreeCerNo;
    }

    //背调人数
    private Integer peopleNum;
    private List<Long> deptIds;

    @Excel(name = "操作人")
    private String userName;


    //时间参数查询
    private Date beginCreateTime;

    private Date endCreateTime;


    //状态集合
    private List<Long> statusList;

    //套餐id集合
    private List<Long> packageList;



    public List<Long> getPackageList() {
        return packageList;
    }

    public void setPackageList(List<Long> packageList) {
        this.packageList = packageList;
    }

    public List<Long> getStatusList() {
        return statusList;
    }

    public void setStatusList(List<Long> statusList) {
        this.statusList = statusList;
    }

    public Date getBeginCreateTime() {
        return beginCreateTime;
    }

    public void setBeginCreateTime(Date beginCreateTime) {
        this.beginCreateTime = beginCreateTime;
    }

    public Date getEndCreateTime() {
        return endCreateTime;
    }

    public void setEndCreateTime(Date endCreateTime) {
        this.endCreateTime = endCreateTime;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public List<Long> getDeptIds() {
        return deptIds;
    }

    public void setDeptIds(List<Long> deptIds) {
        this.deptIds = deptIds;
    }

    public String getAgentName() {
        return agentName;
    }

    public void setAgentName(String agentName) {
        this.agentName = agentName;
    }

    public String getPackageType() {
        return packageType;
    }

    public void setPackageType(String packageType) {
        this.packageType = packageType;
    }

    public Integer getPeopleNum() {
        return peopleNum;
    }

    public void setPeopleNum(Integer peopleNum) {
        this.peopleNum = peopleNum;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setNumber(String number)
    {
        this.number = number;
    }

    public String getNumber()
    {
        return number;
    }
    public void setCdName(String cdName)
    {
        this.cdName = cdName;
    }

    public String getCdName()
    {
        return cdName;
    }
    public void setIdNumber(String idNumber)
    {
        this.idNumber = idNumber;
    }

    public String getIdNumber()
    {
        return idNumber;
    }
    public void setPhone(String phone)
    {
        this.phone = phone;
    }

    public String getPhone()
    {
        return phone;
    }
    public void setCertificate(String certificate)
    {
        this.certificate = certificate;
    }

    public String getCertificate()
    {
        return certificate;
    }
    public void setAmount(BigDecimal amount)
    {
        this.amount = amount;
    }

    public BigDecimal getAmount()
    {
        return amount;
    }
    public void setAuthorizationType(Long authorizationType)
    {
        this.authorizationType = authorizationType;
    }

    public Long getAuthorizationType()
    {
        return authorizationType;
    }
    public void setPayStatus(Long payStatus)
    {
        this.payStatus = payStatus;
    }

    public Long getPayStatus()
    {
        return payStatus;
    }
    public void setOrderStatus(Long orderStatus)
    {
        this.orderStatus = orderStatus;
    }

    public Long getOrderStatus()
    {
        return orderStatus;
    }
    public void setOrderOutcome(Long orderOutcome)
    {
        this.orderOutcome = orderOutcome;
    }

    public Long getOrderOutcome()
    {
        return orderOutcome;
    }
    public void setStoreId(Long storeId)
    {
        this.storeId = storeId;
    }

    public Long getStoreId()
    {
        return storeId;
    }
    public void setStoreName(String storeName)
    {
        this.storeName = storeName;
    }

    public String getStoreName()
    {
        return storeName;
    }
    public void setAgentId(Long agentId)
    {
        this.agentId = agentId;
    }

    public Long getAgentId()
    {
        return agentId;
    }
    public void setReportUrl(String reportUrl)
    {
        this.reportUrl = reportUrl;
    }

    public String getReportUrl()
    {
        return reportUrl;
    }
    public void setSetmealId(Long setmealId)
    {
        this.setmealId = setmealId;
    }

    public Long getSetmealId()
    {
        return setmealId;
    }
    public void setParentId(Long parentId)
    {
        this.parentId = parentId;
    }

    public Long getParentId()
    {
        return parentId;
    }
    public void setUserId(Long userId)
    {
        this.userId = userId;
    }

    public Long getUserId()
    {
        return userId;
    }
    public void setDeptId(Long deptId)
    {
        this.deptId = deptId;
    }

    public Long getDeptId()
    {
        return deptId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("number", getNumber())
            .append("cdName", getCdName())
            .append("idNumber", getIdNumber())
            .append("phone", getPhone())
            .append("certificate", getCertificate())
            .append("amount", getAmount())
            .append("authorizationType", getAuthorizationType())
            .append("payStatus", getPayStatus())
            .append("orderStatus", getOrderStatus())
            .append("orderOutcome", getOrderOutcome())
            .append("storeId", getStoreId())
            .append("storeName", getStoreName())
            .append("agentId", getAgentId())
            .append("reportUrl", getReportUrl())
            .append("setmealId", getSetmealId())
            .append("parentId", getParentId())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .append("userId", getUserId())
            .append("deptId", getDeptId())
            .toString();
    }

}
